package com.cw.jeeyt.dao.intf.mdata;

import com.cw.jeeyt.dao.model.mdata.MdataAreaDo;
import com.cw.jeeyt.dao.query.mdata.MdataAreaQuery;

import java.util.List;

import com.cw.lang.common.dao.IBaseDao;
import com.cw.lang.mybatis.dto.PageInfo;
import com.cw.lang.mybatis.dto.PageParam;

/**
 * 地区数据库操作接口
 *
 * @author admin
 * @date 2021-03-26 22:30:39
 */
public interface MdataAreaDao extends IBaseDao<MdataAreaDo> {
    /**
     * 分页查询地区
     *
     * @param mdataAreaQuery 条件
     * @return PageInfo<MdataAreaDo>
     */
    PageInfo<MdataAreaDo> selectPage(MdataAreaQuery mdataAreaQuery, PageParam pageParam);

    /**
     * 根据key查询地区
     *
     * @param areaId
     * @return
     */
    MdataAreaDo selectByKey(String areaId);

    /**
     * 根据key删除地区
     *
     * @param areaId
     * @return
     */
    int deleteByKey(String areaId);

    /**
     * 查询地区信息
     *
     * @param mdataAreaQuery 条件
     * @return List<MdataAreaDo>
     */
    List<MdataAreaDo> selectByExample(MdataAreaQuery mdataAreaQuery);

    /**
     * 新增地区信息
     *
     * @param mdataArea 条件
     * @return int>
     */
    int insertBySelective(MdataAreaDo mdataArea);

    /**
     * 修改地区信息
     *
     * @param mdataArea
     * @return
     */
    int updateBySelective(MdataAreaDo mdataArea);

    /**
     * 清理行政区划数据
     */
    void cleanData();

    /**
     * 查询所有的省份/直辖市编码
     * @return
     */
    List<MdataAreaDo> queryAllProvinceCode();

    /**
     * 查询所有的市编码
     * @return
     */
    List<MdataAreaDo> queryAllCityCodeByProvinceCode(String provinceCode);

    List<MdataAreaDo> queryAllAreaCodeByCityCode(String cityCode);
}
